- Frequently Asked Questions (or READ THIS BEFORE SENDING ME EMAIL)
- What can I do to help?
- How to Report Bugs
- Credits
- Version History
Quicknotes for this Release
This version is Beta Release 9. The expiry remains April 30, 1999.
Significant changes for this version include:
1) Queries the CD Remote database for ID3v2 tag information, and will automatically fill it in for you.
2) Option to set the default creator/file type to MacAmp.
3) Unique filetypes generated if output file already exists (a long begged for feature). Prevents accidental deletion of your files.
4) Drag-n-drop of volumes and folders.
5) CD now defaults to 44100 Hz 16 bit stereo files regardless of sound hardware capabilities.
6) Changed (and renamed) the psychoacoustic models.
7) Fixed a few rather annoying bugs.
As with all major overhauls, there are sure to be some bugs, some omissions, and some things that just 'irk' you about the new version. Let me know, or live with it forever!
The psychoacoustic model "Ectoderm" is rough. Stereo Mesoderm sounds very nice. Joint stereo mesoderm and endoderm soiund ok. My favorite today is stereo mesoderm. Yes, I changed the names on purpose to make you try them all again - that's the point of beta testing, and they have all changed.
Happy encoding and beta testing,
Rafael
Quicknotes for Beta Release 8 (Edited for Content)
There have been quite a few changes in this release. Most of these are the result of the PowerPlant conversion. The preferences have moved off of the menu bar and into a nice dialog display. The old "batch list" has been replaced by an appearance manager standard file chooser, as has the GetDirectory dialog. Drag-n-drop now starts encoding immediately using the saved preferences instead of waiting for user input.
SoundDesigner II files are now correctly recognized and encoded if the sampling rate is an MPEG standard rate.
ID3v2 Tags are now supported. You may enable this feature in the Options submenu. At the END of your batch encodings, the program will go back and ask you for the Tag information for each of the files you have encoded. I placed it at the end of the batch so that encodings could proceed unattended until completed. You can also change the filenames here as well. Do NOT move your files during the encoding process, or the Encoder will get confused and not know what to do. If anyone has a better idea for this, please let me know. Right now, it supports the addition of title, album, and artist information, but if there is a great demand, I can extend the number of supported tags.
CD encoding is now supported. If you drag 'trak' files from a mounted CD, the encoder will convert the files to AIFFs, encode the AIFFs, then delete the AIFFs. The temporary files are stored based on your selection in the preferences menu, or in the application's folder if you have not selected a reasonable location.
QuickTime is now required for this program to work. This requirement was necessary to support the CD encoding routines.
What's the MPecker Encoder?
MPecker Encoder is a MacOS program designed to encode AIFF, Sound Designer II or PCM audio files. It supports all MPEG-1 and MPEG-2 sampling frequencies for AIFF and Sound Designer II files, and 44100 Hz Stereo for PCM files. Several bitrates are available, and MPecker can encode mono as well as stereo audio files.
Why MPecker Encoder
No other mp3 shareware/freeware encoder presently exists for the MacOS. I wanted MacOS users to enjoy what PC users have enjoyed since the Fraunhofer Institute released their mp3 encoder for other platforms.
Although SoundEdit 16 supports mp3 encoding, it is slow. On my PB 5300, SE 16 compressed at a 1:14 ratio, that is 14 minutes for every minute of audio. My encoder encodes at 1:4.2 on my 603e/100 with no L2 cache (that's 6.7 frame per second) and I have had reports of joint stereo encoding at one half of realtime on speedy MacOS machines.
On my PowerTower Pro, with a 604e/225, I get 1:0.75, which is quite nice: a CD can be encoded in about half an hour!
Where to Get More MPEG Information
Kyle DeGraaf runs a frequently updated, and current web site at http://www.cbd.net/kdegraaf/mp3.html
It has many useful utilities, and links to other sites, plus he usually has the newest version on his web site, sometimes within minutes of its release. He's been around at least as long as MPecker.
David Renelt also has a very popular Macintosh and PC MPEG web page at http://www.raum.com/mpeg
It has alot of information, as well as links to other sites, and a ton of letters and comments from yours truly, and other MPEG audio afficionados.
How to Use the MPecker Encoder
Mpecker will run on any MacOS PPC machine, and will encode AIFF files or Sound Designer II files sampled at appropriate frequencies into mpeg files. It will also encode 44100 Hz PCM files as well. Supported sampling frequencies are: 44100, 48000, 32000, 24000, 22050, and 16000 Hz.
To start the encoder, you may either drag files onto the MPecker icon, and they will be encoded based on your previously set preferences, or you may use the Command-O command to select one or more files for encoding. Anything you select will be encoded, no matter whether it is a sound file or not. This means text files, binary files, ANYTHING you select or drag-n-drop will be encoded.
Setting Preferences
If you select this choice from the menu bar, you can choose several different options for encoding your file. If you know nothing about MPEG, use joint stereo, 128 kbps, layer III, model "Chop."
Layer II or III
These are different means for encoding music files. Layer II is less complex, but sounds better at higher bitrates. Stereo reproduction in this layer is very good for bitrates of 128 kbps and up. Layer III is the most complex of the implementations. It combines the features of layer II, plus a modified FFT and a Modified Discrete Cosine Transform (MDCT) to the encoding process, and also "packs" each frame using Huffman encoding, thus it takes ALOT of computation time to encode in layer III.
There is a great deal of debate on whether layer II or layer III is the more robust of the encoding implementations. At bitrates of 128 kbps and higher, arguably layer II is better at reproduction in my opinion. Nevertheless, there is a bias toward layer III on the internet, probably only because it is more complex, and because III comes after II, rather than any real audio difference between the two. Certainly, however, at bitrates lower than 128 kbps, layer III has the upper hand.
Bitrates
The bitrate is the number of bits used to encode the audio sample for each second of music. For example, a bitrate of 128 kbps means that there are 128,000 bits (16,000 bytes) used to encode each second of music. While that sounds like alot, realize that there are 176,200 BYTES (1,409,600 bits!) for every second of music in a 44.1 kHz stereo AIFF file. Thus you can see the significant advantage of encoding in MPEG audio.
In general, most people will leave the bitrate at 128 kbps, as most people are encoding stereo files. Mono files can be encoded at lower bitrates - 64 kbps will probably work nicely. For both stereo and mono files, if you find your particular file sounds "distorted" or like music is "missing," try a higher bitrate.
Psy Model
The different "Models" listed in this popup menu selection reflect different ways for MPecker to "listen to the music", and deciding what should stay and what is irrelevant. Depending on your speed requirements and your acoustic tastes, and depending on the source input, the different models allow you to customize the way MPecker interprets your music file.
The choice you make is up to you, just test the various settings and decide for yourself which you like best. There is no right or wrong choice.
Stereo Mode
There are two possible choices here: stereo and joint stereo.Stereo is self-explanatory. The term that may sound unfamiliar is "joint stereo." Joint stereo is an encoding algorithm used to increase the quality of the encoding. If the total distortion of the music exceeds an implementation dependent value, then subbands of the audio are combined, highest frequencies first, so that less space is required to encode the entire file. This tends to make the treble sound a bit flatter than a stereo encoding would, but improves the reproduction of the mid and lower range frequencies.
The most common encoding options found in MPEG files on the internet are: 128 kbps, joint stereo, layer III. See my layer discussion above. For your own purposes, you may want to experiment with different settings to generate your favorite "flavor" of MPEG files. My personal preferences are either layer II stereo 128 kbps, or layer III stereo 128kbps.
Do not confuse MPEG layer III with MPEG-3. There is no MPEG-3 as an IS. MPEG-1 is the original MPEG audio standard, and has layer I, II and IIIencoding. It supports 32 kHz, 44.1 kHz, and 48 kHz sampling rates. Thus, all files encoded from a 44.1 kHz sampled file are MPEG-1 Layer I, IIor III files. MPEG-2 was developed after MPEG-1 with the goal of supportinglower sampling frequencies. MPEG-2 supports 16 kHz, 22.05 kHz, and 24 kHz sampling frequencies, thus all files encoded from a 22.05 kHz sampled fileare MPEG-2 layer I, II or III files. The commonly used suffix ".mp3" iscommonly referred to as "MPEG 3" files, but really, it is an MPEG-1 or MPEG-2 layer III file, depending on the sampling frequency as discussed above.
Add ID3v2 Tags
This option will enable the addition of ID3v2 Tag information to the beginning of files (so you all can watch that nice scrolly thing in MacAmp and other programs). At the END of your batch encoding, a dialog will prompt you for the Tag information. Do NOT move your encoded files until the program is done running, or you will confuse the encoder.
Use CD Remote Database
This option will enable an automatic fill-in of the ID3v2 tag information at the TAG dialog when you are importing and encoding from a CD. It checks your "CD Remote Preferences" file for CD information about the CD you are encoding. If you query the CDDB using such programs as MacCDDB, NetCD, or inCDius about your CD before you encode it, then all of this information will be entered and saved in your "CD Remote Preferences" file for retrieval by MPecker.
Set Filetype to MacAmp
This option will change the filetype to "PLAY" and the creator to "mAmp". Thus after encoding, you can double click the encoded file and it will launch MacAmp and play the file.
Delete Source Files After Encoding
This option will remove the source or input file from your storage system (if possible) after it has been encoded.
Encoded File Destination
This option allow you to decide where you want your encoded files to be placed. You may choose same as original (which for obvious reasons won't work for CD import), same as the application, or choose to be asked for a destination folder.
Scratch File Destination
This option allow you to decide where you want your temporary files to be placed. You may choose same as the output file (i.e. your encoded file destination choice), same as the application's location, or use the temporary items folder.
The 'temporary items' folder is good for temporary files, but it usually resides on your boot volume, and the folder is invisible, thus if the encode stops for some reason, you can't delete the temporary file. It will be deleted automatically at your next reboot, however.
Where to Get Updates
Updates for all of the MPeckers can be found at the MPecker website at http://www.anime.net/~go/mpeckers.html
This version expires on April 30, 1999. It will continue to function after this date, but you will get an annoying splash screen after this date saying to update. This ensures all beta testers are using the latest version of the encoder.
Disclaimer/Distribution Rights
This archive and its complete contents may be distributed to any end-user, as long as there is no charge for it. It may not be included in any commercial or "shareware" software release without express, written non-electronic permission from the author.
Permission is given for distribution on freeware/shareware CD archives as long as:
(1) The archive compilation is made and sold on a non-profit basis;
(2) No modifications are made to the archive or it's contents; and
(3) A copy of the CD archive is forwarded at no cost to the author.
The archive may also be included on CD archives distributed by magazine publishers, provided that:
(1) No modifications are made to the archive or it's contents; and
(2) A copy of both the magazine and the CD archive are forwarded at no cost to the author.
No warranties or guarantees, either expressed or implied, are made with regard to this program, or its output or performance. The end-user accepts this program as is, and use of the program indicates an acceptance of responsibility for any damage occuring as a result of this use. This version is a beta-version, and is distributed for means of testing and debugging only, and not meant for everyday use.
The user of this program accepts responsibility for obeying all applicable copyright law. MPecker Encoder does not set the copyright bit, and no permission is given for encoding copyrighted material.
Registering MPecker Encoder
This program is fully functional (sans the bugs) and is not crippled in any way. No registration is required.
If you would like to send me something for my work, write a program and submit it for everyone to use. If you are an author of shareware or crippleware, send me a registered version of your program.
Things Left to Do
1) Interface with CDDB database
2) 68k encoding.
3) Extended id3v2 TAG information
4) MPEG-4 support.
5) You tell me! This IS a beta version, but PLEASE read the NEXT SECTION beforehand.
Frequently Asked Questions
(0) I can't get player <XXX> to play files I encode with MPecker. What's wrong?
Well, many "mpeg" players can't play all mpeg audio files. Please make sure your player supports the type of encoding you have made.
There are a variety of players, and other useful utilities on Kyle De Graaf's mp3 web page at http://www.cbd.net/kdegraaf/mp3.html
(1) Why wouldn't MPecker recognize my AIFF file for encoding? and
(2) Why is my mpeg output file garbled and distorted?
There are many good reasons why this may happen. The header may not be a standard header or may be corrupt. The AIFF file may be sampled at an unsupported rate, or you may be trying to encode a file that is not an AIFF file.
If your output file is distorted, before you do anything, check and playback your input file. If your input file is garbled, MPecker will just encode the garbling. The encoding will only be as good as your input file! Also note that MPecker only supports MPEG-1 and MPEG-2 sampling frequencies, which are: 44100, 48000, 32000, 22050, 24000 and 16000 Hz.
If you are positive your input file is a good, valid frequency stereo AIFF and still you have no luck or the music is screwed, then send me a short 5 second piece of the file, including the header, and I will look into the problem. DO NOT SEND ME THE ENCODED FILE!
(3) Where can I get the source code for MPecker and MPecker Encoder?
The source code is not available at this time. There are several sources for layer 1 and layer 2 encoders on the net, but no working layer 3 sources exist on the net. The Fraunhofer Institute has a virtual monopoly on layer 3 encoders, and to use their routines, you must register with them and pay a licensing fee. You can also purchase the actual IS from ISO/IEC, catalog number ISO/IEC 11172:3 at a cost of US $135. The MPEG-2 LSF IS is referenced as ISO/IEC 13818:3, unknown cost, but probably about $100.
(4) Why does your web page link not work?
Please direct all questions about the web page to Frank Menendez. His address is listed on the main page at http://www.anime.net/~go/mpeckers.html
(5) I have a 680x0 Macintosh just sitting around and I would like to use it to batch encode mpeg files. Will you write a 680x0-compatible encoder?
I *MAY* do this in the future, but this is VERY low on my priority list. When everything else on my to-do list is done, we will see. Please do not send me mail asking when I will get this done. It will be done when it is done.
(6) When I try to encode file <xxx> I get an alert about my sample not being 16 bit. Why do I get this, and how can I fix it?
If you are using Movie Player to extract your audio, be sure to select the options button and change the options to reflect 16 bit, mono or stereo, whatever you want, and a supported sampling frequency.
(7) I encoded a file using SoundEdit/SWA and one using your encoder, using a 44100 Hz sample file at 64 kbps. The SWA file sounds much better than yours does, which sounds like it was recorded under water. Why?
If you check your SWA encoded file you will find that SWA has downsampled your original sample to 22050 Hz before it encoded it. This means that the SWA encoder has 50% less audio data to process and encode than the MPecker encoder, which is not downsampling your file, but using the original input file you fed it. If you want a 64 kbps bitrate MPecker encode to sound like a 64 kbps SWA encode, downsample the input audio file before you feed it to the MPecker encoder.
(8) What samples do you use for testing when you are coding/testing your encoder?
I have a wide variety of songs which provide very good testing conditions for the encoder. Here is a partial list:
Scorpions - The Zoo (On Scorpions:Animal Magnetism, ゥ1980 ???)
Naked Eyes - Voices in My Head (On Naked Eyes:Best of Naked Eyes, ゥ1991 EMI Records)
Naked Eyes - Fortune and Fame (On Naked Eyes:Best of Naked Eyes, ゥ1991 EMI Records)
Bryan Ferry - Don't Stop the Dance (On Bryan Ferry:Boys and Girls, ゥ1985 Warner Bros)
Thomas Dolby - One of Our Submarines (On Thomas Dolby:RetroSpectacle, ゥ1994 Capitol)
Pet Shop Boys - Was That What It Was? (On Pet Shop Boys:Alternative, ゥ1995 Pet Shop
Boys Partnership LTD, under license to EMI Records)
James - Laid (On James:Laid, ゥ1993 Phonogram Ltd, under license to Polygram Records)
Midnight Oil - Truganini (On Midnight Oil:
The Ocean Blue - Between Something and Nothing (On The Ocean Blue:The Ocean Blue ゥ1989 Sire Records)
toad the wet sprocket - Something's Always Wrong (On toad the wet sprocket:dulcinea
ゥ1994 Sony Music Entertainment)
The Smiths - Bigmouth Strikes Again (On The Smiths:Best II, ゥ1984, 1985, 1986, 1987, 1992 Sire Records)
AC/DC - Walk All Over You (On AC/DC:Highway to Hell, ゥ1979 J. Albert & Son/Atlantic Records)
April Wine - Sign of the Gypsy Queen (On April Wine:The Nature of the Beast, ゥ1981 Capitol Records)
Jesus Jones - right here, right now (On Jesus Jones:Doubt, ゥ1991 SBK Records under license to Capitol Records)
Urge Overkill - You'll be a Woman Soon (On Pulp Fiction Soundtrack, ゥ 1994 MCA Records)
The Cure - Lovesong (On The Cure:Mixed Up, ゥ1990 Elektra Entertainment, a division of
Warner Communications, Inc.)
Judas Priest - Breaking the Law (On Judas Priest:Metal Works 73-93, ゥ1977, 1978, 1979,
1980, 1981, 1982, 1984, 1986, 1988, 1990, 1993 Sony Music Entertainment)
B52s - Channel Z (On B52s:Cosmic Thing, ゥ1989 Reprise Records. Ignore their politics, though)
They are all very good albums, buy them and add them to your collection.
(9) Your encoder crashes when I try to do [_____]. Can you fix it?
Nobody likes bugs, least of all me. But if you would like the bug fixed, I will need the following information to intelligently deal with your problem:
1) MacOS System Version
2) Your machine configuration
3) All your selected options, including bitrate, psy model, layer and stereo mode.
4) The location of the error, including all the information on the Encoder's window.
5) The error type.
6) The encoder version you are using.
7) The sampling rate and number of channels of your input file.
This will make it much easier for me to find the bug and correct it quickly. If you have a MacsBug dump, this would help even more. MacsBug is available from apple.com.
(10) Your encoded files sound like s**t. Why?
If you have concerns about encoding quality, and you feel I should test your specific AIFF sample, send me NO MORE THAN 5 seconds of the file. DO NOT SEND ME THE ENCODED FILE - I can encode it myself.
(11) When I transfer my MPecker encoded files to a PC, they no longer will play. Why not?
Mac files have resource forks and data forks. MPecker Encoder places information in the data fork ONLY. If you have added and/or manipulated the resource fork (like, adding TAGS and other non-standard CRAP, or changed the owner or creator of the file, such as for MacAMP or for Vamp), you'll have to strip the file down to a simple data-fork-only file before you send it. It's gonna be like any other MacOS file you've ever sent - screwed up, unless YOU take precautions and address the file differences yourself.
(12) I can't seem to drag files onto the MPecker Encoder or Decoder. Why not?
You need to rebuild your desktop.
What can I do to help?
There are two things which would help me tremendously and speed development time. If you have a spare license or software package of these, it would be deeply appreciated!
1) CodeWarrior Professional Release 4
I could probably use a G3 card for my PTP 225, too, but I won't hold my breath...
If you can discern which specific frequency ranges you notice encoding problems, please let me know as this is quite helpful. My email address is: rafaelwl@sumter.net
How to Report Bugs
When reporting problems or crashes, please include the following:
1) MacOS System Version
2) Your machine configuration
3) All your selected options, including bitrate, psy model, layer and stereo mode.
4) The location of the error, including all the information on the Encoder's window.
5) The error type.
6) The encoder version you are using.
7) The sampling rate and number of channels of your input file.
This will make it much easier for me to find the bug and correct it quickly. If you have a StdLog from MacsBug, please include that as well. MacsBug is available from Apple.
If you have concerns about encoding quality, and you feel I should test your specific AIFF sample, send me NO MORE THAN 5 seconds of the ORIGINAL file. Please do not send me the encoded file - I can encode it myself.
Please check and see if your question has been answered in the FAQ section before sending me e-mail. I enjoy everyone's mail, but it takes a great deal of time away from doing coding and bug fixes, which I am sure everyone wants.
Credits
MPecker Encoder is based on ISO/IEC 11172:3 and ISO/IEC 13818:3. Portions of the program were taken from the developer's 13818 software simulation, specifically 13818:3-2, tech report distribution 10.
Optimizations on the mdct, the polyphase filter, the fast fourier transform and others are expressly copyrighted by me and may not be used or reverse engineered from this program without expressed, written, non-electronic consent from me.
MPecker Encoder was compiled on my PB 5300 and my PowerTower Pro 225 using CodeWarrior. It is programmed in a C++/C hybrid, with PowerPC assembly intertwined here and there.
Brian Goss has gracefully provided a web site and storage space for MPecker news and releases, and I thank his generosity.
Frank Menendez does an excellent job of maintaining the MPecker web page at http://www.anime.net/~go/mpeckers.html . It is the main source of program and news updates, and I am very appreciative of all his hard work, as it leaves me much more time to work on my programs.
Ideas for the GUI were provided by David Renelt, who also runs a Macintosh and PC MPEG web page at http://www.raum.com/mpeg
Sound Designer II is a trademark of Digidesign, A Division of Avid Technology, Inc.
Version History
1.0 - (Beta 9)
1) Fixed EOAIFF bug.
2) Added MacAmp file type option.
3) Added CD Remote Database routines.
4) Fixed table crash.
5) Output now generated in a filename only if it does not already exist.
6) Drag-n-drop of folders/volumes/CDs support added.
7) SoundDescriptor importer set to 44100 stereo 16 bit as default.
1.0 - (Beta 8)
1) Completed PowerPlant Conversion
2) Added support for SoundDesigner II encoding
3) Fixed TAG corruption error.
4) Started framework for extended tag information.
5) Allow for selectable location for temporary files (for CD import).
1.0 - (Beta 7)
1) Started PowerPlant conversion.
2) ID3v2 Tag implementation
3) CD encoding using QuickTime Routines.
4) Fixed e-304 bug.
5) Converted layer II subroutines to C++ class hierarchy.
1.0 - (Beta 6c2)
1) Not quite ready to use MrC - crashes VM. Back to CW.
2) Slight speed enhancement in Layer II.
1.0 - (Beta 6)
1) Changed handling of event processing.
2) Advanced expiry
3) Removed priority menu choices.
4) Recompiled using MrC (getting ready for AltiVec).
5) Model preferences now saved in preferences file.
1.0 - (Beta 5c4)
1) Replaced atan2()
2) Psychoacoustic test models 1 2 and 3 altered
3) Revised thresholds for MPEG-2 layer II
4) Finally fixed MPEG-2 layer II encodings
5) Revised MDCT()
6) Revised FFTS()
7) "Clamped" SNRs under varying circumstances
8) Revised bit allocation table
1.0 - (Beta 5c3)
1) Command-E now works as a key shortcut.
2) More psy model changes.
1.0 - (Beta 5c2)
1) COMPLETE rebuild/revamp of all 4 psy models based on user input.
1.0 - (Beta 5c1)
1) Slight change to the models left out before the b5 release.
1.0 - (Beta 5)
1) 4 final psychoacoustic models placed in encoder for review and commentary
2) Increased huffman encoding limits
3) Reenabled amplification
1.0 - (Beta 4)
1) Fixed frame overlap bug
2) Minor psychoacoustic adjustment
3) Misc Optimizations
1.0 - (Beta 3)
1) Some CDDA Tweaking
2) Rewrote FFT routines
3) Misc Optimizations
1.0 - (Beta 2)
1) Moved batch window to center of screen
2) Filename recognition for names with one character, followed by mp3, i.e. 1.aiff
is now correctly changed to 1.mp3
3) Removed CDDA to AIFF QuickTime routines and all QuickTime dependencies.
4) Began CD direct encoding implementation.
5) Corrected display for PCM files (total frames and time estimates).
6) Recompiled using Includes/Libraries 3.1
1.0 - (Beta 1)
1) Added a menu option for choosing file destination.